package com.tudouji.project.document.service.impl;

import com.tudouji.common.utils.DateUtils;
import com.tudouji.project.document.domain.DocumentRecord;
import com.tudouji.project.document.mapper.DocumentRecordMapper;
import com.tudouji.project.document.service.IDocumentRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 单证跟踪记录Service业务层处理
 *
 * @author coal
 * @date 2021-12-07
 */
@Slf4j
@Service
public class DocumentRecordServiceImpl implements IDocumentRecordService {
    @Autowired
    private DocumentRecordMapper documentRecordMapper;

    /**
     * 查询单证跟踪记录
     *
     * @param id 单证跟踪记录ID
     * @return 单证跟踪记录
     */
    @Override
    public DocumentRecord selectDocumentRecordById(Long id) {
        return documentRecordMapper.selectDocumentRecordById(id);
    }

    /**
     * 查询单证跟踪记录列表
     *
     * @param documentRecord 单证跟踪记录
     * @return 单证跟踪记录
     */
    @Override
    public List<DocumentRecord> selectDocumentRecordList(DocumentRecord documentRecord) {
        return documentRecordMapper.selectDocumentRecordList(documentRecord);
    }

    /**
     * 新增单证跟踪记录
     *
     * @param documentRecord 单证跟踪记录
     * @return 结果
     */
    @Override
    public int insertDocumentRecord(DocumentRecord documentRecord) {
        documentRecord.setCreateTime(DateUtils.getNowDate());
        return documentRecordMapper.insertDocumentRecord(documentRecord);
    }

    /**
     * 修改单证跟踪记录
     *
     * @param documentRecord 单证跟踪记录
     * @return 结果
     */
    @Override
    public int updateDocumentRecord(DocumentRecord documentRecord) {
        documentRecord.setUpdateTime(DateUtils.getNowDate());
        return documentRecordMapper.updateDocumentRecord(documentRecord);
    }

    /**
     * 批量删除单证跟踪记录
     *
     * @param ids 需要删除的单证跟踪记录ID
     * @return 结果
     */
    @Override
    public int deleteDocumentRecordByIds(Long[] ids) {
        return documentRecordMapper.deleteDocumentRecordByIds(ids);
    }

    /**
     * 删除单证跟踪记录信息
     *
     * @param id 单证跟踪记录ID
     * @return 结果
     */
    @Override
    public int deleteDocumentRecordById(Long id) {
        return documentRecordMapper.deleteDocumentRecordById(id);
    }

    @Override
    public int deleteDocumentRecords(DocumentRecord documentRecord) {
        return documentRecordMapper.deleteDocumentRecords(documentRecord);
    }

    @Override
    public List<DocumentRecord> selectDocumentRecords(DocumentRecord documentRecord) {
        List<DocumentRecord> records=documentRecordMapper.selectDocumentRecordList(documentRecord);
//        List<DocumentRecord> list=new ArrayList<>();
//        records.forEach(item->{
//            if(list.contains(item)){//如果list包含了
//                List<FileInfo> files=list.get(list.indexOf(item)).getFiles();
//                if(files.isEmpty()){
//                    files=new ArrayList<>();
//                    files.add(item.getFile());
//                    list.get(list.indexOf(item)).setFiles(files);
//                }else{
//                    files.add(item.getFile());
//                    list.get(list.indexOf(item)).setFiles(files);
//                }
//            }else{
//                List<FileInfo> files=new ArrayList<>();
//                files.add(item.getFile());
//                item.setFiles(files);
//                list.add(item);
//            }
//        });
        return records;
    }

    @Override
    public DocumentRecord selectDocumentRecord(DocumentRecord doc) {
        return documentRecordMapper.selectDocumentRecord(doc);
    }
}
